// Copyright 2013 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#ifndef EXTENSIONS_COMMON_MANIFEST_CONSTANTS_H_
#define EXTENSIONS_COMMON_MANIFEST_CONSTANTS_H_

#include "build/build_config.h"
#include "build/chromeos_buildflags.h"

namespace extensions {

// Keys used in JSON representation of extensions.
namespace manifest_keys {

extern const char kAboutPage[];
extern const char kAction[];
extern const char kActionDefaultIcon[];
extern const char kActionDefaultPopup[];
extern const char kActionDefaultState[];
extern const char kActionDefaultTitle[];
extern const char kApp[];
extern const char kAppDisplayMode[];
extern const char kAppIconColor[];
extern const char kAppThemeColor[];
extern const char kAutomation[];
extern const char kBackground[];
extern const char kBackgroundAllowJsAccess[];
extern const char kBackgroundPage[];
extern const char kBackgroundPersistent[];
extern const char kBackgroundScripts[];
extern const char kBackgroundServiceWorkerScript[];
extern const char kBluetooth[];
extern const char kBookmarkUI[];
extern const char kBrowserAction[];
extern const char kBrowseURLs[];
extern const char kChromeURLOverrides[];
extern const char kCommands[];
extern const char kContentCapabilities[];
extern const char kContentSecurityPolicy[];
extern const char kContentSecurityPolicy_ExtensionPagesPath[];
extern const char kContentSecurityPolicy_IsolatedWorldPath[];
extern const char kContentSecurityPolicy_SandboxedPagesPath[];
extern const char kConvertedFromUserScript[];
extern const char kCurrentLocale[];
extern const char kDefaultLocale[];
extern const char kDescription[];
extern const char kDevToolsPage[];
extern const char kDifferentialFingerprint[];
extern const char kDisplayInLauncher[];
extern const char kDisplayInNewTabPage[];
extern const char kEventName[];
extern const char kExternallyConnectable[];
extern const char kEventRules[];
extern const char kFileAccessList[];
extern const char kFileHandlers[];
extern const char kFileHandlerExtensions[];
extern const char kFileHandlerIncludeDirectories[];
extern const char kFileHandlerTypes[];
extern const char kFileHandlerVerb[];
extern const char kFileFilters[];
extern const char kFileBrowserHandlerId[];
extern const char kFileBrowserHandlers[];
extern const char kGlobal[];
extern const char kHideBookmarkButton[];
extern const char kHomepageURL[];
extern const char kHostPermissions[];
extern const char kIcons[];
extern const char kId[];
extern const char kImeOptionsPage[];
extern const char kIndicator[];
extern const char kInputComponents[];
extern const char kInputView[];
extern const char kIsolation[];
extern const char kKey[];
extern const char kKiosk[];
extern const char kKioskAlwaysUpdate[];
extern const char kKioskEnabled[];
extern const char kKioskOnly[];
extern const char kKioskMode[];
extern const char kKioskRequiredPlatformVersion[];
extern const char kKioskSecondaryApps[];
extern const char kLanguage[];
extern const char kLaunch[];
extern const char kLaunchContainer[];
extern const char kLauncherPage[];
extern const char kLauncherPagePage[];
extern const char kLaunchHeight[];
extern const char kLaunchLocalPath[];
extern const char kLaunchWebURL[];
extern const char kLaunchWidth[];
extern const char kLayouts[];
extern const char kLinkedAppIcons[];
extern const char kLinkedAppIconURL[];
extern const char kLinkedAppIconSize[];
extern const char kManifestVersion[];
extern const char kMatches[];
extern const char kMIMETypes[];
extern const char kMimeTypesHandler[];
extern const char kMinimumChromeVersion[];
extern const char kNaClModules[];
extern const char kNaClModulesMIMEType[];
extern const char kNaClModulesPath[];
extern const char kName[];
extern const char kNativelyConnectable[];
extern const char kOAuth2[];
extern const char kOAuth2AutoApprove[];
extern const char kOAuth2ClientId[];
extern const char kOAuth2Scopes[];
extern const char kOfflineEnabled[];
extern const char kOmniboxKeyword[];
extern const char kOptionalPermissions[];
extern const char kOptionsPage[];
extern const char kOptionsUI[];
extern const char kOverrideHomepage[];
extern const char kOverrideSearchProvider[];
extern const char kOverrideStartupPage[];
extern const char kPageAction[];
extern const char kPermissions[];
extern const char kPlatformAppBackground[];
extern const char kPlatformAppBackgroundPage[];
extern const char kPlatformAppBackgroundScripts[];
extern const char kPlatformAppContentSecurityPolicy[];
extern const char kPublicKey[];
extern const char kRemoveButton[];
extern const char kReplacementAndroidApp[];
extern const char kReplacementWebApp[];
extern const char kRequirements[];
extern const char kSandboxedPages[];
extern const char kSandboxedPagesCSP[];
extern const char kSettingsOverride[];
extern const char kSettingsOverrideAlternateUrls[];
extern const char kShortName[];
extern const char kSockets[];
extern const char kStorageManagedSchema[];
extern const char kSuggestedKey[];
extern const char kSystemIndicator[];
extern const char kTheme[];
extern const char kThemeColors[];
extern const char kThemeDisplayProperties[];
extern const char kThemeImages[];
extern const char kThemeTints[];
extern const char kTtsEngine[];
extern const char kTtsVoices[];
extern const char kTtsVoicesEventTypeEnd[];
extern const char kTtsVoicesEventTypeError[];
extern const char kTtsVoicesEventTypeMarker[];
extern const char kTtsVoicesEventTypeSentence[];
extern const char kTtsVoicesEventTypeStart[];
extern const char kTtsVoicesEventTypeWord[];
extern const char kTtsVoicesEventTypes[];
extern const char kTtsVoicesGender[];
extern const char kTtsVoicesLang[];
extern const char kTtsVoicesRemote[];
extern const char kTtsVoicesVoiceName[];
extern const char kUpdateURL[];
extern const char kUrlHandlers[];
extern const char kUrlHandlerTitle[];
extern const char kUsbPrinters[];
extern const char kVersion[];
extern const char kVersionName[];
extern const char kWebAppFileHandlers[];
extern const char kWebAppFileHandlerAccept[];
extern const char kWebAppFileHandlerAction[];
extern const char kWebAppLinkedShortcutItems[];
extern const char kWebAppLinkedShortcutItemIcons[];
extern const char kWebAppLinkedShortcutItemIconSize[];
extern const char kWebAppLinkedShortcutItemIconURL[];
extern const char kWebAppLinkedShortcutItemName[];
extern const char kWebAppLinkedShortcutItemURL[];
extern const char kWebAppShortcutIcons[];
extern const char kWebURLs[];
extern const char kWebview[];
extern const char kWebviewName[];
extern const char kWebviewAccessibleResources[];
extern const char kWebviewPartitions[];
#if BUILDFLAG(IS_CHROMEOS_ASH)
extern const char kActionHandlers[];
extern const char kActionHandlerActionKey[];
extern const char kActionHandlerEnabledOnLockScreenKey[];
extern const char kFileSystemProviderCapabilities[];
#endif
}  // namespace manifest_keys

// Some values expected in manifests.
namespace manifest_values {

extern const char kActionCommandEvent[];
extern const char kApiKey[];
extern const char kBrowserActionCommandEvent[];
extern const char kIncognitoNotAllowed[];
extern const char kIncognitoSplit[];
extern const char kIncognitoSpanning[];
extern const char kIsolatedStorage[];
extern const char kKeybindingPlatformChromeOs[];
extern const char kKeybindingPlatformDefault[];
extern const char kKeybindingPlatformLinux[];
extern const char kKeybindingPlatformMac[];
extern const char kKeybindingPlatformWin[];
extern const char kKeyAlt[];
extern const char kKeyShift[];
extern const char kKeyCommand[];
extern const char kKeyCtrl[];
extern const char kKeyComma[];
extern const char kKeyDel[];
extern const char kKeyDown[];
extern const char kKeyHome[];
extern const char kKeyEnd[];
extern const char kKeyIns[];
extern const char kKeyLeft[];
extern const char kKeyMacCtrl[];
extern const char kKeyMediaNextTrack[];
extern const char kKeyMediaPlayPause[];
extern const char kKeyMediaPrevTrack[];
extern const char kKeyMediaStop[];
extern const char kKeyPgDwn[];
extern const char kKeyPgUp[];
extern const char kKeyPeriod[];
extern const char kKeyRight[];
extern const char kKeySearch[];
extern const char kKeySeparator[];
extern const char kKeySpace[];
extern const char kKeyTab[];
extern const char kKeyUp[];
extern const char kLaunchContainerPanelDeprecated[];
extern const char kLaunchContainerTab[];
extern const char kLaunchContainerWindow[];
extern const char kPageActionCommandEvent[];

}  // namespace manifest_values

// Error messages returned from extension installation.
namespace manifest_errors {

extern const char kActiveTabPermissionNotGranted[];
extern const char kAllURLOrActiveTabNeeded[];
extern const char kAppsNotEnabled[];
extern const char kBackgroundPermissionNeeded[];
extern const char kBackgroundRequiredForPlatformApps[];
extern const char kBackgroundSpecificationInvalidForManifestV3[];
extern const char kCannotAccessAboutUrl[];
extern const char kCannotAccessChromeUrl[];
extern const char kCannotAccessExtensionUrl[];
extern const char kCannotAccessPage[];
extern const char kCannotAccessPageWithUrl[];
extern const char kCannotChangeExtensionID[];
extern const char kCannotClaimAllHostsInExtent[];
extern const char kCannotClaimAllURLsInExtent[];
extern const char kCannotScriptGallery[];
extern const char kCannotScriptNtp[];
extern const char kCannotScriptSigninPage[];
extern const char kCannotUninstallManagedExtension[];
extern const char kChromeStyleInvalidForManifestV3[];
extern const char kChromeVersionTooLow[];
extern const char kDeclarativeNetRequestPermissionNeeded[];
extern const char kDefaultStateShouldNotBeSet[];
extern const char kDevToolsExperimental[];
extern const char kExpectString[];
extern const char kFileNotFound[];
extern const char kHasDifferentialFingerprint[];
extern const char kInvalidAboutPage[];
extern const char kInvalidAboutPageExpectRelativePath[];
extern const char kInvalidAction[];
extern const char kInvalidActionDefaultIcon[];
extern const char kInvalidActionDefaultPopup[];
extern const char kInvalidActionDefaultState[];
extern const char kInvalidActionDefaultTitle[];
extern const char kInvalidAppDisplayMode[];
extern const char kInvalidAppIconColor[];
extern const char kInvalidAppThemeColor[];
extern const char kInvalidBackground[];
extern const char kInvalidBackgroundAllowJsAccess[];
extern const char kInvalidBackgroundCombination[];
extern const char kInvalidBackgroundScript[];
extern const char kInvalidBackgroundScripts[];
extern const char kInvalidBackgroundServiceWorkerScript[];
extern const char kInvalidBackgroundInHostedApp[];
extern const char kInvalidBackgroundPersistent[];
extern const char kInvalidBackgroundPersistentInPlatformApp[];
extern const char kInvalidBackgroundPersistentNoPage[];
extern const char kInvalidBrowserAction[];
extern const char kInvalidBrowseURL[];
extern const char kInvalidBrowseURLs[];
extern const char kInvalidChromeURLOverrides[];
extern const char kInvalidCommandsKey[];
extern const char kInvalidContentCapabilities[];
extern const char kInvalidContentCapabilitiesMatch[];
extern const char kInvalidContentCapabilitiesMatchOrigin[];
extern const char kInvalidContentCapabilitiesPermission[];
extern const char kInvalidCSPInsecureValueIgnored[];
extern const char kInvalidCSPInsecureValueError[];
extern const char kInvalidCSPMissingSecureSrc[];
extern const char kInvalidDefaultLocale[];
extern const char kInvalidDescription[];
extern const char kInvalidDevToolsPage[];
extern const char kInvalidDisplayInLauncher[];
extern const char kInvalidDisplayInNewTabPage[];
extern const char kInvalidDisplayModeAppType[];
extern const char kInvalidEmptyDictionary[];
extern const char kInvalidExcludeMatch[];
extern const char kInvalidExcludeMatches[];
extern const char kInvalidExportPermissions[];
extern const char kInvalidExportAllowlistString[];
extern const char kInvalidFileAccessList[];
extern const char kInvalidFileAccessValue[];
extern const char kInvalidFileBrowserHandler[];
extern const char kInvalidFileBrowserHandlerId[];
extern const char kInvalidFileBrowserHandlerMissingPermission[];
extern const char kInvalidFileFiltersList[];
extern const char kInvalidFileFilterValue[];
extern const char kInvalidFileHandlers[];
extern const char kInvalidFileHandlersHostedAppsNotSupported[];
extern const char kInvalidFileHandlersTooManyTypesAndExtensions[];
extern const char kInvalidFileHandlerExtension[];
extern const char kInvalidFileHandlerExtensionElement[];
extern const char kInvalidFileHandlerIncludeDirectories[];
extern const char kInvalidFileHandlerNoTypeOrExtension[];
extern const char kInvalidFileHandlerType[];
extern const char kInvalidFileHandlerTypeElement[];
extern const char kInvalidFileHandlerVerb[];
extern const char kInvalidHomepageOverrideURL[];
extern const char kInvalidHomepageURL[];
extern const char kInvalidHostPermission[];
extern const char kInvalidHostPermissions[];
extern const char kInvalidIconKey[];
extern const char kInvalidIconPath[];
extern const char kInvalidIcons[];
extern const char kInvalidImportAndExport[];
extern const char kInvalidImportId[];
extern const char kInvalidImportVersion[];
extern const char kInvalidInputComponents[];
extern const char kInvalidInputComponentLayoutName[];
extern const char kInvalidInputComponentName[];
extern const char kInvalidInputView[];
extern const char kInvalidIsolation[];
extern const char kInvalidIsolationValue[];
extern const char kInvalidKey[];
extern const char kInvalidKeyBinding[];
extern const char kInvalidKeyBindingDescription[];
extern const char kInvalidKeyBindingDictionary[];
extern const char kInvalidKeyBindingMediaKeyWithModifier[];
extern const char kInvalidKeyBindingMissingPlatform[];
extern const char kInvalidKeyBindingTooMany[];
extern const char kInvalidKeyBindingUnknownPlatform[];
extern const char kInvalidKioskAlwaysUpdate[];
extern const char kInvalidKioskEnabled[];
extern const char kInvalidKioskOnly[];
extern const char kInvalidKioskOnlyButNotEnabled[];
extern const char kInvalidKioskRequiredPlatformVersion[];
extern const char kInvalidKioskSecondaryApps[];
extern const char kInvalidKioskSecondaryAppsBadAppEntry[];
extern const char kInvalidKioskSecondaryAppsDuplicateApp[];
extern const char kInvalidKioskSecondaryAppsPropertyUnavailable[];
extern const char kInvalidLauncherPage[];
extern const char kInvalidLauncherPagePage[];
extern const char kInvalidLaunchContainer[];
extern const char kInvalidLaunchValue[];
extern const char kInvalidLaunchValueContainer[];
extern const char kInvalidLinkedAppIcon[];
extern const char kInvalidLinkedAppIconSize[];
extern const char kInvalidLinkedAppIconURL[];
extern const char kInvalidLinkedAppIcons[];
extern const char kInvalidManifest[];
extern const char kInvalidManifestKey[];
extern const char kInvalidManifestVersion[];
extern const char kInvalidManifestVersionOld[];
extern const char kInvalidMatch[];
extern const char kInvalidMatchCount[];
extern const char kInvalidMatches[];
extern const char kInvalidMIMETypes[];
extern const char kInvalidMimeTypesHandler[];
extern const char kInvalidMinimumChromeVersion[];
extern const char kInvalidNaClModules[];
extern const char kInvalidNaClModulesMIMEType[];
extern const char kInvalidNaClModulesPath[];
extern const char kInvalidName[];
extern const char kInvalidNativelyConnectable[];
extern const char kInvalidNativelyConnectableValue[];
extern const char kInvalidOAuth2AutoApprove[];
extern const char kInvalidOAuth2ClientId[];
extern const char kInvalidOAuth2Scopes[];
extern const char kInvalidOfflineEnabled[];
extern const char kEmptyOmniboxKeyword[];
extern const char kInvalidOptionsUIChromeStyle[];
extern const char kInvalidOptionsUIOpenInTab[];
extern const char kInvalidOptionsPage[];
extern const char kInvalidOptionsPageExpectUrlInPackage[];
extern const char kInvalidOptionsPageInHostedApp[];
extern const char kInvalidPageAction[];
extern const char kInvalidPermission[];
extern const char kInvalidPermissions[];
extern const char kInvalidPermissionScheme[];
extern const char kInvalidPermissionWithDetail[];
extern const char kInvalidReplacementAndroidApp[];
extern const char kInvalidReplacementWebApp[];
extern const char kInvalidRequirement[];
extern const char kInvalidRequirements[];
extern const char kInvalidRulesetID[];
extern const char kInvalidSandboxedPagesList[];
extern const char kInvalidSandboxedPage[];
extern const char kInvalidSearchEngineMissingKeys[];
extern const char kInvalidSearchEngineURL[];
extern const char kInvalidShortName[];
extern const char kInvalidStartupOverrideURL[];
extern const char kInvalidSystemIndicator[];
extern const char kInvalidTheme[];
extern const char kInvalidThemeColorAppType[];
extern const char kInvalidThemeColors[];
extern const char kInvalidThemeImages[];
extern const char kInvalidThemeImagesMissing[];
extern const char kInvalidThemeTints[];
extern const char kInvalidTts[];
extern const char kInvalidTtsVoices[];
extern const char kInvalidTtsVoicesEventTypes[];
extern const char kInvalidTtsVoicesGender[];
extern const char kInvalidTtsVoicesLang[];
extern const char kInvalidTtsVoicesRemote[];
extern const char kInvalidTtsVoicesVoiceName[];
extern const char kInvalidUpdateURL[];
extern const char kInvalidURLPatternError[];
extern const char kInvalidURLHandlers[];
extern const char kInvalidURLHandlerPatternElement[];
extern const char kInvalidURLHandlerTitle[];
extern const char kInvalidURLHandlerPattern[];
extern const char kInvalidVersion[];
extern const char kInvalidVersionName[];
extern const char kInvalidWebAccessibleResourcesList[];
extern const char kInvalidWebAccessibleResource[];
extern const char kInvalidWebAppFileHandlers[];
extern const char kInvalidWebAppFileHandlersNotBookmarkApp[];
extern const char kInvalidWebAppFileHandler[];
extern const char kInvalidWebAppFileHandlerAccept[];
extern const char kInvalidWebAppFileHandlerAction[];
extern const char kInvalidWebAppFileHandlerEmptyAccept[];
extern const char kInvalidWebAppFileHandlerFileExtensions[];
extern const char kInvalidWebAppFileHandlerFileExtension[];
extern const char kInvalidWebAppLinkedShortcutItem[];
extern const char kInvalidWebAppLinkedShortcutItems[];
extern const char kInvalidWebAppLinkedShortcutItemsNotBookmarkApp[];
extern const char kInvalidWebAppLinkedShortcutItemIcon[];
extern const char kInvalidWebAppLinkedShortcutItemIcons[];
extern const char kInvalidWebAppLinkedShortcutItemIconSize[];
extern const char kInvalidWebAppLinkedShortcutItemIconUrl[];
extern const char kInvalidWebAppLinkedShortcutItemName[];
extern const char kInvalidWebAppLinkedShortcutItemUrl[];
extern const char kInvalidWebAppShortcutItemIcons[];
extern const char kInvalidWebAppShortcutIcons[];
extern const char kInvalidWebAppShortcutIconsNotBookmarkApp[];
extern const char kInvalidWebview[];
extern const char kInvalidWebviewAccessibleResourcesList[];
extern const char kInvalidWebviewAccessibleResource[];
extern const char kInvalidWebviewPartition[];
extern const char kInvalidWebviewPartitionName[];
extern const char kInvalidWebviewPartitionsList[];
extern const char kInvalidWebURL[];
extern const char kInvalidWebURLs[];
extern const char kInvalidZipHash[];
extern const char kKeyIsDeprecatedWithReplacement[];
extern const char kLauncherPagePageRequired[];
extern const char kLaunchPathAndExtentAreExclusive[];
extern const char kLaunchPathAndURLAreExclusive[];
extern const char kLaunchURLRequired[];
extern const char kLocalesInvalidLocale[];
extern const char kLocalesMessagesFileMissing[];
extern const char kLocalesNoDefaultMessages[];
extern const char kLocalesNoValidLocaleNamesListed[];
extern const char kLocalesTreeMissing[];
extern const char kManifestParseError[];
extern const char kManifestUnreadable[];
extern const char kManifestVersionTooHighWarning[];
extern const char kMissingFile[];
extern const char kMultipleOverrides[];
extern const char kNoWildCardsInPaths[];
extern const char kNPAPIPluginsNotSupported[];
extern const char kOneUISurfaceOnly[];
extern const char kPageCaptureNeeded[];
extern const char kPermissionCannotBeOptional[];
extern const char kPermissionMarkedOptionalAndRequired[];
extern const char kPermissionMustBeOptional[];
extern const char kPermissionNotAllowed[];
extern const char kPermissionNotAllowedInManifest[];
extern const char kPermissionUnknownOrMalformed[];
extern const char kPluginsRequirementDeprecated[];
extern const char kReservedMessageFound[];
extern const char kSandboxPagesCSPKeyNotAllowed[];
extern const char kRulesFileIsInvalid[];
extern const char kRulesetCountExceeded[];
extern const char kTransientBackgroundConflictsWithPersistentBackground[];
extern const char kTtsGenderIsDeprecated[];
extern const char kUnrecognizedManifestKey[];
extern const char kUnrecognizedManifestProperty[];
extern const char kUrlHandlersInHostedApps[];
extern const char kWebRequestConflictsWithLazyBackground[];
#if BUILDFLAG(IS_CHROMEOS_ASH)
extern const char kDuplicateActionHandlerFound[];
extern const char kIllegalPlugins[];
extern const char kInvalidActionHandlerDictionary[];
extern const char kInvalidActionHandlersActionType[];
extern const char kInvalidActionHandlersType[];
extern const char kInvalidFileSystemProviderMissingCapabilities[];
extern const char kInvalidFileSystemProviderMissingPermission[];
#endif

}  // namespace manifest_errors

}  // namespace extensions

#endif  // EXTENSIONS_COMMON_MANIFEST_CONSTANTS_H_
